package com.zl.zsk.service;

import com.zl.zsk.pojo.SysMenu;
import com.zl.zsk.pojo.SysUser;
import com.zl.zsk.pojo.vo.PageInfo;
import com.zl.zsk.pojo.vo.UserVo;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author lxb
 * @version 1.0.0
 * @desc:
 * @date 2020-03-13 10:54
 */
public interface UserService extends UserDetailsService {

    /**
     * 验证用户密码，通过后返回token
     * @param userName
     * @param password
     * @return
     */
    String authLogin(String userName,String password);

    /**
     * 获取用户信息
     * @param token
     * @return
     */
    SysUser getUserFromToken(String token);

    /**
     * 退出登录
     * @param token
     */
    void logout(String token);

    /**
     * 显示菜单
     * @return
     */
    List<SysMenu> getUserMenus();

    /**
     * 添加用户
     * @param sysUser
     */
    void addUser(SysUser sysUser);

    /**
     * 编辑用户
     * @param sysUser
     */
    void editUser(SysUser sysUser);

    /**
     * 上传用户头像
     * @param file
     * @return
     */
    String uploadAvatar(MultipartFile file);

    /**
     * 回显头像给前端
     * @param name
     * @return
     */
    byte[] getAvatar(String name);

    /**
     * 修改密码
     * @param oldPassword
     * @param newPassword
     */
    void editPassword(String oldPassword,String newPassword);


    /**
     * 查询用户列表
     * @param userVo
     * @return
     */
    PageInfo<SysUser> listUser(UserVo userVo);
}
